Is there any way I can make database permanent?
Short of a custom ROM of some sort, nope.
How do I ask user if he/she wants delete everything while uninstalling the app and then erase all the data or maintain at least the database if user does not want to delete everything?
You won't be able to prompt the user as they are deleting applications to perform some other action. If this was an option that was available, unscrupulous developers could use such a hook to reinstall their application in a different location and this is bad.
You could, however, include some sort of preference that allows the user to backup their data and copy the database to a location out of your apps private directory. Of course, you would have to provide your own way of encrypting the data if it should be private, and there is no guarantee that the file will not be deleted by the user, another app, etc.
If your information is not sensitive in nature, perhaps writing the database to a public directory (anything other than your application filesDir or externalFilesDir from the start is the way to go. Files in public directories are not deleted when the application is uninstalled.
You may have a greater problem though. If the user is switching devices, a local copy of the database isn't going to help. You'll need someway to download the information and restore state. At this point, most people resort to sending the information to some sort of web service. Android's Backup Manager may be helpful in your case.