Choosing the Appropiate IC for Uno-to-I2C Voltage Level Shifting

The following was posted earlier in the wrong category; sorry for the duplication.

I have seen several references to using the CD4050 non-inverting hex buffer converter between Uno's 5 volt I/O and 3.3 volt I2C sensors, but I have also seen a few references suggesting the use of IT's 74LVT245 Low Voltage Octal Bidirectional Transceiver with 3-STATE Inputs/Outputs if the communication is to be bi-directional; Sparkfun also sells the Level Translator Breakout - PCA9306 which I understand is bi-directional. When I'm using I2C sensors, either singularly or daisy chained, I'm having to send info back-and-forth when requesting data. Could someone please explain when it's appropriate to use the CD4050 versus a bi-directional level shifter like the 74LVT245?

I use a module with mosfets.

Eventually you can avoid any level shifter, depending on the DC characteristics of the connected devices. Two requirements must be met by all devices: they must safely detect an HIGH state on the SCL/SDA lines, and they must tolerate the maximum bus voltage, injected by the pull up resistors. When you have full control over the pullups, you can try to connect them to the 3.3V line. Then of course the HIGH voltage can not become higher than 3.3V, but this should be within the tolerance of most I2C inputs.