1. A method for reading a database object comprising: performing an optimistic read of the database object during a transaction; executing a first consistency check of the database object to determine whether the database object is consistent; performing a first pessimistic read of the database object, during the transaction, if the first consistency check indicates that the database object is not consistent; executing a second consistency check of the database object to determine whether the database object is consistent, in response to the first pessimistic read; and performing a second pessimistic read of the database object, during the transaction, if the second consistency check indicates that the database object is not consistent.