private function executeRead($statement, array $parameters)
    {
        if ($this->transactionCount == 0) {
            $connection = $this->pool->selectReadConnection();
        } else {
            $connection = $this->transactionConnection;
        }

        try {
            return $connection->execute(
                $this->expandPlaceholders($statement, $parameters),
                $parameters
            );
        } catch (ConnectionException $e) {
            $this->pool->disableReadConnection($connection);
            if ($this->pool->getReadConnectionCount() == 0) {
                throw $e;
            }

            return $this->executeRead($statement, $parameters);
        }
    }