How to change i2c address of Lidar Lite v3 using LidarLite library (Solved)
You probably need to use LIDARLite_v3HP.h. The setI2Caddr() function is not same between LIDARLite_v3HP.h and LIDARLite.h.
The datasheet you provided, has the instruction on how to update the I2C address. LIDARLite_v3HP.h's setI2Caddr() followed those instructions.
To check, if you go to this line of the source code of LIDARLite.h, you will see the function doesn't write 0x08 to 0x1e, instead writes 0x00. Either that's how it was in the earlier versions or maybe it's a bug.
Also, it is mentioned in the datasheet that, if you power cycle the Lidar the address will be restored to default.

Update
After I gone through the library more carefully I noticed that writing `0x08` into `0x01` is actually handled but differently in the `LIDERLite.h'. 
Here is the setI2Caddr() code from the library (check the last two lines):
void LIDARLite::setI2Caddr(char newAddress, char disableDefault, char lidarliteAddress)
{
  byte dataBytes[2];

  // Read UNIT_ID serial number bytes and write them into I2C_ID byte locations
  read ((0x16 | 0x80), 2, dataBytes, false, lidarliteAddress);
  write(0x18, dataBytes[0], lidarliteAddress);
  write(0x19, dataBytes[1], lidarliteAddress);

  // Write the new I2C device address to registers
  dataBytes[0] = newAddress;
  write(0x1a, dataBytes[0], lidarliteAddress);

  // Enable the new I2C device address using the default I2C device address
  dataBytes[0] = 0;
  write(0x1e, dataBytes[0], lidarliteAddress);

  // If desired, disable default I2C device address (using the new I2C device address)
  if (disableDefault)
  {
    dataBytes[0] = (1 &lt;&lt; 3); // set bit to disable default address
    write(0x1e, dataBytes[0], newAddress);
  }
}

All you have to do is set disableDefault to any positive int when you call setI2Caddr().