Preheat your oven to 350°F (180°C).
Season the veal shanks generously with salt and pepper. Dredge the shanks in flour, shaking off any excess.
Heat olive oil in a large skillet over medium-high heat. Brown the veal shanks on all sides, about 8 minutes total. Transfer the shanks to a plate and set aside.
In the same skillet, add onions, carrots, celery, and garlic. Cook until the vegetables are soft and beginning to brown, about 10 minutes.
Deglaze the skillet with white wine, scraping up any browned bits from the bottom. Cook until the liquid is reduced by half.
Transfer the vegetables and liquid to a large dutch oven or pot. Add the broth, diced tomatoes, bay leaves, and thyme sprigs. Bring to a simmer.
Add the veal shanks back to the pot, making sure they are fully submerged in the liquid. Cover and transfer to the oven.
Cook for 1 ½ to 2 hours, or until the veal is tender and falling off the bone.
In a small bowl, combine the butter, parsley, lemon zest, and minced garlic. Mash together with a fork until well blended.
Remove the veal shanks from the oven and take out the bay leaves and thyme sprigs. Discard.
Serve the veal shanks on top of a bed of risotto or creamy polenta. Garnish with the gremolata on top of each shank.