I actually think an exception here is the correct approach, but it should throw a database-specific exception class.