Looks like your device resets the address on a STOP. This is on page 19 of the datasheet. "A STOP condition resets the register address pointer to 0x00." The read() is always going to read from address 0 which happens to have a reset value of 0.