/// <summary>
        /// Gets all views.
        /// </summary>
        public IList <DatabaseView> AllViews(CancellationToken ct)
        {
            if (ct.IsCancellationRequested)
            {
                return(DatabaseSchema.Views);
            }

            IList <DatabaseView> views;

            using (_readerAdapter.CreateConnection())
            {
                var builder = new ViewBuilder(_readerAdapter, Exclusions);
                var handler = ReaderProgress;
                if (handler != null)
                {
                    builder.ReaderProgress += RaiseReadingProgress;
                }
                views = builder.Execute(ct);
            }

            DatabaseSchema.Views.Clear();
            DatabaseSchema.Views.AddRange(views);

            UpdateReferences();
            if (DatabaseSchema.DataTypes.Count > 0)
            {
                DatabaseSchemaFixer.UpdateDataTypes(DatabaseSchema);
            }

            return(views);
        }