Automatic Failover or Database Mirroring? We have a software backed with database. We want to keep database at a remote location and have it all the time available. For this task, a 5 year old project experience came into my mind. I remember, IT department over there asked me to deploy database not locally but remotely on another LAN computer. They told me, there will be two computers there but thanks to a special software, I will see only one Windows OS interface and that software will handle all sync, backup, replication .. tasks. They were calling it "virtual machine".

So with the IP they gave me, I just connected to so called virtual machine and I just deployed my SQL database there just like it is in a local machine. In summary, we need such a solution now for ourselves. I made some search on the net and I found out Automatic Failover, Database Mirroring etc. topics. But I am not sure these refer to what I described. At this point I need your help. Maybe there is a better solution after 5 year for such a task. I am not a database administrator.

I did not choose a specific database yet. Our software can connect to several number of major databases. Just seems that SQL will provide a robust solution for that. And In short, what we need is to have a database backend which will be always available to us. So  in the case of failures, it should have a system to automatically switch to working replica.
What you're describing sounds like Microsoft Sql Server HADR commonly called AlwaysOn Availability Groups. It combines traditional Windows clustering with Database Mirroring to allow you a primary replica and up to 4 (Sql Server 2012) secondary replicas.

Once set up correctly it will provide you with a single IP address and port # to use as a connection target for your application. Setting up the mirroring portion is a bit more than just deploying your database to the connection though there are ways to automate that also.

The replicas may be geographically separated as well as residing on different sub-nets and domains.