/// <summary>
        /// Creates embeddable instance of document changes
        /// </summary>
        /// <param name="database">Database name is ignored in embeddable document store</param>
        protected override IDatabaseChanges CreateDatabaseChanges(string database)
        {
            IDatabaseChanges result = null;

            result = new EmbeddableDatabaseChanges(this, () => result = null, ((EmbeddedDatabaseCommands)DatabaseCommands).TryResolveConflictByUsingRegisteredListeners);
            return(result);
        }
        /// <summary>
        /// Subscribe to change notifications from the server
        /// </summary>
        public override IDatabaseChanges Changes(string database = null)
        {
            if (string.IsNullOrEmpty(Url) == false)
            {
                return(base.Changes(database));
            }

            if (database != null)
            {
                throw new NotSupportedException("Embedded document store does not support multi tenancy");
            }

            if (databaseChanges == null)
            {
                lock (this)
                {
                    Thread.MemoryBarrier();
                    if (databaseChanges == null)
                    {
                        databaseChanges = (EmbeddableDatabaseChanges)CreateDatabaseChanges(null);
                    }
                }
            }
            return(databaseChanges);
        }