SDA line pulled low by slave always?
The slave may be stuck in a bad state. Out of sync with master. Try sending out some clocks to advance the slave state machine to a different state. This happens frequently with I2C during boot up and power cycle type of situations. But there could also be some underlying problem. For example, your clock may be ringing, and this could cause the problem. (The clock may be registering as two clocks) So you should put an oscilloscope on the bus and make sure the signal levels and signal integrity look reasonable. Make sure your clock frequency is not too fast, also.

The CAV24C32 uses so little power, you could actually power it from an IO on the master if you have an extra pin. If you drive the power IO low, then make sure all other lines connected to the EEPROM are also low, that will completely reset it.