I have coated 6 of my garages and my hanger floor with two different systems. The first try was with a rustoleum product, water based epoxy. I was unsatisfied with the the results.
As stated the preparation is important.
The steps required make it a 3 day project.
Day One Clean, patch, water blast, acid etch
Day Two Primer
Day 3 Epoxy
First all loose concrete if any must be removed and patched.
I then use a 3000 psi gas powered water pressure blaster to clean every inch. If there is any oil, it is removed before hand with concrete cleaner.
Next, all of the products require a light acid etch, Depending on your product it is available from the supplier of the resin/epoxy you will be using.
The product I use requires a primer which is applied with a roller.
Then a two part epoxy is mixed with an electric drill and paint stirrer in gallon cans. The setup time is fairly rapid, so you need to move fast set time is about 30-40 minutes depending on temperature and humidity. I use a floor squeegee to spread and a paint roller on a long handle to back roll. If slip resistance is required a very fine silica sand is added to the epoxy mix.
The product that I have had the best success with is a philadelphia resins product called Impax. Here is the link http://www.itwresintech.com/
You can get everything you want to know about coating systems here. By the way your shoes will stick to the product and they will be throw aways when your done as will the rollers and floor squeegees.
After trying 2 systems, Impax by ITW Resin Tech has proven the best performer. My oldest application is 10 years and going strong. Anything that can can drop off your vehicles quickly cleans up.
For garages I have used battle ship haze gray and for hangers white. I would choose the gray for any new applications.