I'm 99% sure you can paint ANY surface like this...
I have painted almost every type of surface in my home...Corian, linoleum, hard wood floors, butt ugly ceramic tiles, bath tubs and I have done them all the following way (haven't done granite cause I don't have any but I'm 99% sure what I say below will work on granite too)... Unless you know something I don't which is entirely possible!...please use/do the following. If you do know better please lmk what products you've used that have held up! Disclaimer...I've only done INTERIOR surfaces, so don't go do on your outside back porch and get pissed off at me.
Step #1 (if your doing hardwood floors skip to step #2)
Sand the surface. I'm not picky on the grit of the sandpaper you just want to scuff em up a bit! You DO NOT want deep scratches so use your common sense.
Step #2 Vacum off dust (if I’m doing my hardwood floors, I keep vacuum right near me during priming and painting to get crap up that suddenly appeared)
Put gloves on...I buy a box of latex ones from home depot, but of course don't buy latex ones if your allergic! Point is oil paint is sticky shit and sometimes you need to pick stuff up off the surface, i.e. dog hair and it's good to have some rubber gloves on. I also keep some Kirkland/Costco cleaning wipes close by, they seem to be the only thing that quickly removes oil paint (can't usually use mineral spirits cause I already have paint on surface I'm painting!)
Prime with the following primer & roller (if you’re doing hardwood floors I use a different roller, pic at bottom). Don’t let Joe Blow at paint store tell you to use any other primer or roller.
Step#5 Use same roller as above (unless you're doing hardwood then use pic at bottom)
Your ready to use your color...you MUST use OIL ( Enamel) paint. I use Shermin Williams and I use their pre-mixed ALL Surface ENAMEL (comes in safety red (floors in top pic), yellow, black and white) for the record I never recommend using white oil paint cause it yellows over time. Don’t let Shermin Williams tell you they can mix you any color in their enamel paint, they’ve pulled that shit on me before and the paint didn’t hold up like their pre-mixed colors.
If you can’t live with one of those pre-mixed colors then you need to buy the more expensive Fine Paints of Europe (they sell at Benjamin Moore) They have a ton of great pre-mixed colors and can mix you any color you want without the integrity of the paint faultering.
I wait at least 8 hours between coats, you really only need 2 coats. After the 2nd (final cause I'm too lazy to do more than 2) coat I try to wait as long as humanly possible before touching and when I do my floors I wear socks on them for about a week. I like super high gloss look and I’ve found I can achieve that just through buying my color paint in high gloss thus I’ve never used a clear, varnish, laquer or polyurethane top coat, but be my guest if you want to try, and if you do I’d suggest an oil-based one... instead I just throw on another coat when my floors start to look dull (about every 2 years) and for my surfaces (every 5 years)
Roller I use on hardwood floors or wood furniture below...I don't need super smooth surface that's why I don't use one above.