Isn't there a way to specify the direction of traversal here?  That is, can you start the cursor at the largest uniqueNum?

Also, this seems like a lot of work for a real corner case!  It seems to me that it would be fine to display two custom ringtones with the same name and title.  All the user has to do is touch them to hear the difference. And they're going to get different ids, right?  If this uniquify function is the only reason for having to create the index on the db, I'd say it isn't worth it.