A good way to get distance over a cable is to not use I2C protocol. I2C has to support bidirectional flow on the SDA line that does not have convenient method to support the direction changeover for the signalling. Same holds true for the SCL line if the target device does clock stretching.
A better way to attack this is to use the ASYNC UART port of the Arduino's RxD and TxD lines. You would interface these through a chip like a MAX232. In the far end you use another MAX232 to convert the signals back to the logic level RxD and TxD signals that you feed to a small MCU. This remote MCU then connects to the I2C based sensor. A small bit of firmware in the MCU communicates with the Arduino via ASYNC UART to then read/write the sensor as needed per the commands received from the Arduino.
================
If you want to investigate an actual I2C bus buffer chip that would eliminate the need for the extra MCU then take a look at this other question. That discusses the use of the PCA9600/PCA9601 dual bi-directional buffer chip. These devices have special logic that is designed to be able to determine when a direction change is occurring (i.e. when the slave end is driving the bus) and switch the buffer chips accordingly. It is suggested to read the data sheet carefully and any related App Notes to understand how these work in order to be successful with using them.