/// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public override bool Exists()
        {
            using (var readOnlyConnection = _connection.CreateReadOnlyConnection())
            {
                try
                {
                    readOnlyConnection.Open(errorsExpected: true);
                }
                catch (SqliteException ex) when(ex.SqliteErrorCode == SQLITE_CANTOPEN)
                {
                    return(false);
                }
            }

            return(true);
        }
    /// <summary>
    ///     This is an internal API that supports the Entity Framework Core infrastructure and not subject to
    ///     the same compatibility standards as public APIs. It may be changed or removed without notice in
    ///     any release. You should only use it directly in your code with extreme caution and knowing that
    ///     doing so can result in application failures when updating to a new Entity Framework Core release.
    /// </summary>
    public override bool Exists()
    {
        var connectionOptions = new SqliteConnectionStringBuilder(_connection.ConnectionString);

        if (connectionOptions.DataSource.Equals(":memory:", StringComparison.OrdinalIgnoreCase) ||
            connectionOptions.Mode == SqliteOpenMode.Memory)
        {
            return(true);
        }

        using var readOnlyConnection = _connection.CreateReadOnlyConnection();
        try
        {
            readOnlyConnection.Open(errorsExpected: true);
        }
        catch (SqliteException ex) when(ex.SqliteErrorCode == SQLITE_CANTOPEN)
        {
            return(false);
        }

        return(true);
    }