Query build functions (ORM) from should return the same value as PDOStatement::fetchObject because when checking if the record exist on the database we need to differentiate when we have internal errors and when the occurrence doesn't exist. This is because in case of any internal error the user might get user doesn't exist which is misleading because if the internal error was fixed and the user try to register again, he might get an error saying that user already exist.