How can I get a separate number and a separate set of contacts on one phone?

What I am looking for is a service that has the following:

  1. A second number
  2. A database of contacts that’s separate from my current list of contacts
  3. The ability to see who is calling using the second number

Is there anything that can do all three? Right now I’m using Google Voice, which has two downsides. One, the application is horrible and will not let me edit contacts on my phone. And two, you can set it show you that someone is calling using the number, but then it will not show you who is calling using the number.

I vaguely recall in the flip-phone days wasn’t there a “dual-sim” phone? Not sure if that meant you would have to choose number A or B at boot, or if they were both active?

I have a duel SIM smart phone. It’s a few years old now and I use it when I go to Europe. Both SIMs are active at once and you have to choose which one to use each time. What I don’t remember is if you can have two different contact lists or not.