diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.1_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.1_plus/sql/view_id.sql
index 64181cd64..0a49145c2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.1_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.1_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name |qtLiteral}} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.2_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.2_plus/sql/view_id.sql
index 64181cd64..0a49145c2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.2_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.2_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name |qtLiteral}} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.3_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.3_plus/sql/view_id.sql
index 64181cd64..0a49145c2 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.3_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.3_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name |qtLiteral}} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/create.sql
index b43b51984..a4095c0f6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/create.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/create.sql
@@ -7,8 +7,11 @@
 {% endif %}
 {% if data.name and data.schema and data.definition %}
 CREATE OR REPLACE VIEW {{ conn|qtIdent(data.schema, data.name) }}{% if ((data.check_option and data.check_option.lower() != 'no') or data.security_barrier) %}{{ '\n' }}WITH (
-{% if data.check_option and data.check_option.lower() != 'no' %}    check_option={{ data.check_option }}{% endif %}{{ ',\r' if data.check_option and data.check_option.lower() != 'no' and data.security_barrier }}{% if data.security_barrier %}    security_barrier={{ data.security_barrier|lower }}{% endif %}{{'\r'}}
-){% endif %} AS
+{% if data.check_option and data.check_option.lower() != 'no' %}
+check_option={{ data.check_option }}{% endif %}{{ ',' if data
+.check_option and data.check_option.lower() != 'no' and data
+.security_barrier }}{% if data.security_barrier %}
+security_barrier={{ data.security_barrier|lower }}{% endif %}){% endif %} AS
 {{ data.definition.rstrip(';') }};
 {% if data.owner and data.m_view is undefined %}
 
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/view_id.sql
index 64181cd64..553f8b3a0 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/9.4_plus/sql/view_id.sql
@@ -2,5 +2,5 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name |qtLiteral}} and nsp.nspname = '{{ data.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.1_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.1_plus/sql/view_id.sql
index 64181cd64..9a43a5c12 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.1_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.1_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.2_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.2_plus/sql/view_id.sql
index 64181cd64..9a43a5c12 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.2_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.2_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.3_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.3_plus/sql/view_id.sql
index 64181cd64..9a43a5c12 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.3_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.3_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = '{{ data
+.schema }}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/create.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/create.sql
index b43b51984..a4095c0f6 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/create.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/create.sql
@@ -7,8 +7,11 @@
 {% endif %}
 {% if data.name and data.schema and data.definition %}
 CREATE OR REPLACE VIEW {{ conn|qtIdent(data.schema, data.name) }}{% if ((data.check_option and data.check_option.lower() != 'no') or data.security_barrier) %}{{ '\n' }}WITH (
-{% if data.check_option and data.check_option.lower() != 'no' %}    check_option={{ data.check_option }}{% endif %}{{ ',\r' if data.check_option and data.check_option.lower() != 'no' and data.security_barrier }}{% if data.security_barrier %}    security_barrier={{ data.security_barrier|lower }}{% endif %}{{'\r'}}
-){% endif %} AS
+{% if data.check_option and data.check_option.lower() != 'no' %}
+check_option={{ data.check_option }}{% endif %}{{ ',' if data
+.check_option and data.check_option.lower() != 'no' and data
+.security_barrier }}{% if data.security_barrier %}
+security_barrier={{ data.security_barrier|lower }}{% endif %}){% endif %} AS
 {{ data.definition.rstrip(';') }};
 {% if data.owner and data.m_view is undefined %}
 
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/view_id.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/view_id.sql
index 64181cd64..87476fba4 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/view_id.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/9.4_plus/sql/view_id.sql
@@ -2,5 +2,6 @@
 {% if data %}
 SELECT c.oid, c.relname FROM pg_class c
 LEFT OUTER JOIN pg_namespace nsp on nsp.oid = c.relnamespace
-WHERE c.relname = '{{ data.name }}' and nsp.nspname = '{{ data.schema }}';
+WHERE c.relname = {{ data.name|qtLiteral }} and nsp.nspname = '{{ data.schema
+}}';
 {% endif %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_view.sql
new file mode 100644
index 000000000..557943c6d
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/alter_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
+    OWNER TO postgres;
+COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment-updated';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_table.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_table.sql
new file mode 100644
index 000000000..d6694411a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_table.sql
@@ -0,0 +1,15 @@
+-- Table: public.test_view_table
+
+-- DROP TABLE public.test_view_table;
+
+CREATE TABLE public.test_view_table
+(
+    col1 integer
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+ALTER TABLE public.test_view_table
+    OWNER to postgres;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_view.sql
new file mode 100644
index 000000000..0c78d687e
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/create_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
+    OWNER TO postgres;
+COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/tests.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/tests.json
new file mode 100644
index 000000000..7b9045b3c
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.4_plus/tests.json
@@ -0,0 +1,76 @@
+{
+  "scenarios": [
+    {
+      "type": "create",
+      "name": "Create Table for Views",
+      "endpoint": "NODE-table.obj",
+      "sql_endpoint": "NODE-table.sql_id",
+      "data": {
+        "name": "test_view_table",
+        "check_constraint": [],
+        "coll_inherits": "[]",
+        "columns": [
+          {
+            "name": "col1",
+            "cltype": "integer"
+          }
+        ],
+        "name": "test_view_table",
+        "schema": "public"
+      },
+      "expected_sql_file": "create_table.sql"
+    },
+    {
+      "type": "create",
+      "name": "Create Views",
+      "endpoint": "NODE-view.obj",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+        "definition": "select col1 from test_view_table;",
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public",
+        "check_option": "local",
+        "security_barrier": true,
+        "comment":"Testcomment"
+      },
+      "expected_sql_file": "create_view.sql"
+    },
+    {
+      "type": "alter",
+      "name": "Alter View",
+      "endpoint": "NODE-view.obj_id",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+        "definition": "select col1 from test_view_table;",
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public",
+        "check_option": "local",
+        "security_barrier": true,
+        "comment":"Testcomment-updated"
+      },
+      "expected_sql_file": "alter_view.sql"
+    },
+    {
+      "type": "delete",
+      "name": "Drop view",
+      "endpoint": "NODE-view.obj_id",
+      "data": {
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public"
+      }
+    },
+    {
+      "type": "delete",
+      "name": "Drop Table for view",
+      "endpoint": "NODE-table.obj_id",
+      "data": {
+        "name": "test_view_table",
+        "owner": "postgres",
+        "schema": "public"
+      }
+    }
+  ]
+}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/alter_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/alter_view.sql
new file mode 100644
index 000000000..557943c6d
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/alter_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
+    OWNER TO postgres;
+COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment-updated';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_table.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_table.sql
new file mode 100644
index 000000000..d6694411a
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_table.sql
@@ -0,0 +1,15 @@
+-- Table: public.test_view_table
+
+-- DROP TABLE public.test_view_table;
+
+CREATE TABLE public.test_view_table
+(
+    col1 integer
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+ALTER TABLE public.test_view_table
+    OWNER to postgres;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_view.sql
new file mode 100644
index 000000000..0c78d687e
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/create_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
+    OWNER TO postgres;
+COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/tests.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/tests.json
new file mode 100644
index 000000000..7b9045b3c
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/pg/9.6_plus/tests.json
@@ -0,0 +1,76 @@
+{
+  "scenarios": [
+    {
+      "type": "create",
+      "name": "Create Table for Views",
+      "endpoint": "NODE-table.obj",
+      "sql_endpoint": "NODE-table.sql_id",
+      "data": {
+        "name": "test_view_table",
+        "check_constraint": [],
+        "coll_inherits": "[]",
+        "columns": [
+          {
+            "name": "col1",
+            "cltype": "integer"
+          }
+        ],
+        "name": "test_view_table",
+        "schema": "public"
+      },
+      "expected_sql_file": "create_table.sql"
+    },
+    {
+      "type": "create",
+      "name": "Create Views",
+      "endpoint": "NODE-view.obj",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+        "definition": "select col1 from test_view_table;",
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public",
+        "check_option": "local",
+        "security_barrier": true,
+        "comment":"Testcomment"
+      },
+      "expected_sql_file": "create_view.sql"
+    },
+    {
+      "type": "alter",
+      "name": "Alter View",
+      "endpoint": "NODE-view.obj_id",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+        "definition": "select col1 from test_view_table;",
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public",
+        "check_option": "local",
+        "security_barrier": true,
+        "comment":"Testcomment-updated"
+      },
+      "expected_sql_file": "alter_view.sql"
+    },
+    {
+      "type": "delete",
+      "name": "Drop view",
+      "endpoint": "NODE-view.obj_id",
+      "data": {
+        "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+        "owner": "postgres",
+        "schema": "public"
+      }
+    },
+    {
+      "type": "delete",
+      "name": "Drop Table for view",
+      "endpoint": "NODE-table.obj_id",
+      "data": {
+        "name": "test_view_table",
+        "owner": "postgres",
+        "schema": "public"
+      }
+    }
+  ]
+}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_view.sql
new file mode 100644
index 000000000..3df921937
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/alter_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview1_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview1_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview1_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview1_$%{}[]()&*^!@""'`\/#"
+    OWNER TO enterprisedb;
+COMMENT ON VIEW public."testview1_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment-updated';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_table.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_table.sql
new file mode 100644
index 000000000..13dfdd0de
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_table.sql
@@ -0,0 +1,15 @@
+-- Table: public.test_view_table
+
+-- DROP TABLE public.test_view_table;
+
+CREATE TABLE public.test_view_table
+(
+    col1 integer
+)
+WITH (
+    OIDS = FALSE
+)
+TABLESPACE pg_default;
+
+ALTER TABLE public.test_view_table
+    OWNER to enterprisedb;
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_view.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_view.sql
new file mode 100644
index 000000000..8177ea8ea
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/create_view.sql
@@ -0,0 +1,14 @@
+-- View: public."testview_$%{}[]()&*^!@""'`\/#"
+
+-- DROP VIEW public."testview_$%{}[]()&*^!@""'`\/#";
+
+CREATE OR REPLACE VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+WITH (
+check_option=local,security_barrier=true) AS
+ SELECT test_view_table.col1
+   FROM test_view_table;
+
+ALTER TABLE public."testview_$%{}[]()&*^!@""'`\/#"
+    OWNER TO enterprisedb;
+COMMENT ON VIEW public."testview_$%{}[]()&*^!@""'`\/#"
+    IS 'Testcomment';
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/tests.json b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/tests.json
new file mode 100644
index 000000000..c0146f679
--- /dev/null
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/tests/ppas/9.4_plus/tests.json
@@ -0,0 +1,76 @@
+{
+  "scenarios": [
+        {
+      "type": "create",
+      "name": "Create Table for Views",
+      "endpoint": "NODE-table.obj",
+      "sql_endpoint": "NODE-table.sql_id",
+      "data":{
+            "name":"test_view_table",
+            "check_constraint": [],
+            "coll_inherits": "[]",
+            "columns": [
+                {
+                    "name": "col1",
+                    "cltype": "integer"
+                }
+            ],
+            "name": "test_view_table",
+            "schema": "public"
+        },
+      "expected_sql_file": "create_table.sql"
+    },
+    {
+      "type": "create",
+      "name": "Create Views",
+      "endpoint": "NODE-view.obj",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+              "definition": "select col1 from test_view_table;",
+              "name": "testview_$%{}[]()&*^!@\"'`\\/#",
+              "owner": "enterprisedb",
+              "schema": "public",
+              "check_option": "local",
+              "security_barrier": true,
+              "comment":"Testcomment"
+      },
+      "expected_sql_file": "create_view.sql"
+    },
+    {
+      "type": "alter",
+      "name": "Alter Views",
+      "endpoint": "NODE-view.obj_id",
+      "sql_endpoint": "NODE-view.sql_id",
+      "data": {
+              "definition": "select col1 from test_view_table;",
+              "name": "testview1_$%{}[]()&*^!@\"'`\\/#",
+              "owner": "enterprisedb",
+              "schema": "public",
+              "security_barrier":true,
+              "comment":"Testcomment-updated"
+
+      },
+      "expected_sql_file": "alter_view.sql"
+    },
+    {
+      "type": "delete",
+      "name": "Drop Views",
+      "endpoint": "NODE-view.obj_id",
+      "data": {
+              "name": "testview1_$%{}[]()&*^!@\"'`\\/#",
+              "owner": "enterprisedb",
+              "schema": "public"
+      }
+    },
+    {
+      "type": "delete",
+      "name": "Drop Table for Views",
+      "endpoint": "NODE-table.obj_id",
+      "data": {
+              "name": "test_view_table",
+              "owner": "enterprisedb",
+              "schema": "public"
+      }
+    }
+    ]
+}
