public function isInstalled()
    {
        try {
            switch ($this->pdo->getAttribute(\PDO::ATTR_DRIVER_NAME)) {
                case "sqlite":
                    $query =
                        "SELECT count(*) FROM sqlite_master
                            WHERE type='table' AND name = '{$this->prefix}meta'";
                    break;
                
                default:
                    $query =
                        "SELECT CASE WHEN EXISTS(
                            (SELECT * FROM information_schema.tables
                                WHERE table_name='{$this->prefix}meta')
                        ) THEN 1 ELSE 0 END";
                    break;
                
            }
            
            $stmt = $this->statementContainer->prepare($query);
            $stmt->execute();
            $result = $stmt->fetch();
            if ($result === false) {
                throw new DataBackendException();

            }
            $stmt->closeCursor();
            return $result[0] == 1;

        } catch (\PDOException $e) {
            $stmt->closeCursor();
            throw new DataBackendIOException($e->getMessage(), 0, $e);

        }
    }