Hi Pala,
Sorry for the delay in getting back to you.
The view code is not fully wired up right now -- contributions are welcome and if you want to start working on it, I can help out with advice. As you noticed the main issue is that there is no way to use a ViewManager in production. It's only used in the unit tests. I think probably there are three approaches that would work in production.
1) store views as a key in the druid_config table, something like 'sql_views' with a value that is a json array of views.
2) store views in their own metadata table, like druid_sql_views.
3) store views in hardcoded configuration using runtime properties.
(1) is nice since it prevents the need to have a dedicated table, but (2) would scale better to a large number of views. and (3) is definitely the easiest, although it's not very flexible. I think probably I'd pick (2). As for how to manage views, I think ideally it should be possible to do it using SQL, like CREATE/ALTER/DROP VIEW commands. But REST would be easier to implement and is a good start.
It's also important to make sure views integrate well with the security layer. Ideally how it'd work is that a user could be granted permission to query a view but not to query the underlying datasource (this is how you'd build row/column level security). But there isn't a "Resource" type for views yet, just for datasources. So that should be sorted out eventually, but, it doesn't have to be right now. The next iteration of views could just be written such that a user can only query them if they have read permission to the underlying datasource. There should be unit tests for this to make sure the permission checking works properly.