protected function execute(PreparableSqlInterface $query)
    {
        $statement = $this->getSqlObject()->prepareStatementForSqlObject($query);

        $resultSet = new HydratingResultSet($this->hydrator, $this->prototype);
        return $resultSet->initialize($statement->execute());
    }