I am using the BMP280 (on GY-BMP280 breakout) with the Arduino MEGA. Since it requires 3.3V voltage level I decided to use the logic level shifter (I get one similar to https://www.sparkfun.com/products/12009 with 4 MOSFET and pull-up resistors).
I know I could find the 5V micro SD card breakout with built-in 5V->3.3V regulator and shifter, but I decided to use logic level shifter for this as well.
Since micro SD uses SPI I need to find at minimum 6 channel logic level shifter (4 for micro SD SPI and 2 for BMP280 I2C).
TXB010x need >=2mA of drive current to switch state from one direction to the other. Some I2C parts can't support that.
This design has been working in a project I did for a Wiegand serial interface. R30, R31 are tranzorbs to protect against voltage spokes.
I think it's the same parts as Sparkfun uses on their board.
What I normally do for SPI is use cd74HC4050 for 5V to 3.3V on SCK, MOSI, chip select, and 74ACT125 or similar for 3.3V to 5V coming back, with the '125 gate driven by CS so the MISO from the SD is not on the bus all the time, messing it up for other SPI devices.
I2C is 2 way all the time tho, so the MOSFET solution is really the way to go. Master drives SCL and SDA, slave responds by holding SCL and SDA low to ACK a byte received in a simple one byte transfer.