At first glance, I can spot already three problems:
The datasheet was updated that the I2C bus should be < 30kHz. That means that there is a bug in the sensor. I don't know if the Arduino Uno can do 30kHz. It can do 50kHz with Wire.setClock(50000L) after Wire.begin().
The library function readData() has a _pWire->endTransmission() after the _pWire->RequestFrom(...). That is a bug and it might disturb the I2C bus.
The library function writeCommand() has a delay(3) while writing data. That is totally useless. They are probably trying to fix something, but this solution will fix nothing.
Try 31kHz with Wire.setClock and then you have to try the software until it works.
I have even doubts about the note in the datasheet that the I2C clock must be 30kHz or lower. There is probably a glitch or delay at a certain point, for example with the acknowledge. If it is something like that, then it can be solved with a software I2C library.