Problem reading an EEPROM chip using the I2C protocol
You need to pass the address as two bytes, one by one.

Do not do:

Wire.write(address);


Rather, do:

Wire.write((uint8_t)(address &gt;&gt; 8)); // MSB
Wire.write((uint8_t)(address &amp; 0xFF)); // LSB