Add View::exists() and View::getRegisteredEngines()

Close #1707
Test cases for #1707
Updated CHANGELOG